
package com.xbongbong.pro.domain.entity;

import com.alibaba.fastjson.JSONObject;
import com.xbongbong.paas.toolbox.util.DateUtil;
import com.xbongbong.paas.toolbox.wrap.Entity;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

/**
 * 索引仓库
 *  备注：atformId中的F没有大写，因为at|bt|ct  是要灵活拼装的，避免了字符的转换
 * @author 梁鲁江
 * @version v1.0
 * @date 2019/3/1 11:30
 * @since v1.0
 */
@Setter
@Getter
@ToString
public class BiProWareEntity extends Entity {
    private static final long serialVersionUID = -617984947062853238L;

    public BiProWareEntity() {
		updateTime = (long) DateUtil.getInt();
        del = 0;
        //留下此字段防止后面扩展
        isSpecial = 0;
    }
    //========== properties ==========

    /**
     * 自增主键
     */
    private Long id;
    /**
     * 公司ID
     */
    private String corpid;

    private String tableSerial;

    /**
     * 数据格式  举例前2个，后面的如果有的话按照这个增加
     * {
     * 	"at": {
     * 		"formId": 1,
     * 		"linkAttr": "text_1",
     * 		"fieldType": "1001",
     * 		"saasMark": 1,
     * 		"businessType": 100，
     * 		"inData"：1，
     * 		"linkAttrB": "text_1",
     * 		"linkAttrC": "text_1",
     * 	…… 一直要到最后一个关联，关联类型存储在从表那边
     * 	……
     *        },
     * 	"bt": {
     * 		"formId": 2,
     * 		"linkAttr": "text_1",
     * 		"fieldType": "1001",
     * 		"saasMark": 1,
     * 		"businessType": 201
     *    }
     * }
     * {"at":{"formId":1,"link_attr":"text_1","fieldType":"1001","saasMark":1,"businessType":100},"bt":{"formId":2,"link_attr":"text_1","fieldType":"1001","saasMark":1,"businessType":201}}
     */
    private JSONObject atJson;
    private JSONObject btJson;
    private JSONObject ctJson;
    private JSONObject dtJson;
    private JSONObject etJson;
    private JSONObject ftJson;
    /**
     * 关联表单（如：1表示客户联系人大表，2表示客户机会大表）对应BiRelTableEnum枚举
     */
    private Integer relTable;
    /**
     * 特殊逻辑（1），非特殊逻辑（0） 区分数据源，默认为0
     */
    private Integer isSpecial;
    /**
     * 建仓是否完成，是（1），否（0），为1的时候才能使用
     */
    private Integer isDone;
    /**
     * 是否还有关联，用incr和decr的方式去处理，当等于0的时候就没有关联了
     */
    private Integer isCorrelation;
    /**
     * formId:{originalAttr:attr}
     *{"5093": {"text_52": "text_2"}, "5098": {"num_1": "num_1", "text_1": "text_1", "serialNo": "serialNo"}}
     */
    private JSONObject formIdAttr;
    /**
     * 删除（被删除之后置为1，下次重建置回0）
     */
    private Integer del;
    /**
     * 添加时间
     */
    private Long addTime;
    /**
     * 修改时间
     */
    private Long updateTime;
}

